perm filename IFCB.H[IP,SYS] blob
sn#680179 filedate 1982-10-07 generic text, type T, neo UTF8
struct ifcb { /* net i/f control block */
struct ifcb *if_next; /* ->next ifcb */
char *if_name; /* name string */
short if_unit; /* i/f sub-device number */
u_char /* dev indep flags */
if_avail:1, /* i/f available */
if_error:1, /* error on i/f */
if_needinit:1, /* i/f dev needs reset */
if_active:1, /* output in progress on i/f */
if_flush:1, /* flushing input buffers */
if_blocked:1, /* i/f temporarily blocked */
if_disab:1; /* disable i/f on init */
u_char if_flag; /* device dependent flags */
u_short if_bufs; /* no. of bufs queued for this i/f */
u_short if_limit; /* maximum bufs for this i/f */
short if_mtu; /* maximum message size */
short if_link; /* link to IP protocol for this i/f */
struct socket if_addr; /* base internet address for this i/f */
int if_olen; /* output length */
long if_oaddr; /* output uba mapping */
struct mbuf *if_outq_hd; /* -> output queue head */
struct mbuf *if_outq_tl; /* -> output queue tail */
struct mbuf *if_outq_cur; /* -> buffer currently being sent */
int if_ilen; /* input length */
long if_iaddr; /* input uba mapping */
struct mbuf *if_inq_hd; /* -> input queue head */
struct mbuf *if_inq_tl; /* -> input queue tail */
struct mbuf *if_inq_msg; /* -> top of input msg being rcvd */
struct mbuf *if_inq_cur; /* -> bottom of input msg being rcvd */
int (*if_send)(); /* -> local net send routine */
int (*if_rcv)(); /* -> local net input routine */
int (*if_raw)(); /* -> raw local net output routine */
int (*if_init)(); /* -> driver init routine */
int (*if_out)(); /* -> driver output routine */
int if_opkts; /* #packets sent */
int if_ipkts; /* #packets rcvd */
int if_resets; /* #i/f resets */
int if_flushes; /* #i/f flushes */
int if_oerrs; /* #output errors */
int if_ierrs; /* #input errors */
int if_colls; /* #collisions */
};
#define if_attach(ip) \
{ \
ip->if_next = netcb.n_ifcb_hd; \
netcb.n_ifcb_hd = ip; \
}
struct gway { /* gateway table entry */
u_long g_flags; /* flags */
net_t g_fnet; /* foreign net */
net_t g_lnet; /* local net */
struct socket g_local; /* local gateway address */
struct ifcb *g_ifcb; /* -> ifcb for gateway */
};
#define GWROUTE 1 /* routing gateway */
#define GWFORMAT 2 /* gateway format flag */
#ifdef KERNEL
struct gway *gateway, *gatewayNGATE; /* -> gateway table */
int ngate;
#endif KERNEL